Random numbers or pseudo-random numbers may be used in a wide field of applications in modern technology, for instance, in the field of cryptography, numerical simulation and the generation of noise signals, to name but a few. Random numbers or pseudo-random numbers may technically be generated by a true random number generator or a pseudo-random number generator, respectively.
While a true pseudo-random number generator typically employs physical, real source of randomness, a pseudo-random number generator typically does not employ an element showing a statistical true randomness. Examples of such elements are, for instance, electric resistors with Nyquist noise, electrical tunneling elements or elements based on radio active decay with a shot noise behavior or closed feedback loops employing the feedback signal as the noise source to name but a few.
In contrast pseudo-random number generators typically do not employ such elements of true randomness but are based on a deterministic behavior such that the numbers generated by a pseudo-random number generator are not true random numbers.
Thus, true random number generators and pseudo-random number generators are utilized whenever a random or pseudo-random value is important or advisable to be used in a field of application. The above-mentioned examples are a mere scratch at the surface of possible applications.
Pseudo-random number generators, compared to true random number generators, typically allow a faster generation of the numbers, are very often more easily to implement and show a lower energy consumption than corresponding true random number generators. However, it should be kept in mind that the pseudo-random number generators are deterministic systems. As a consequence, the generated numbers may be calculated based on the knowledge of the inner structure of a pseudo-random number generator and the knowledge of a state of it. This may be a disadvantage under some circumstances and a desired and wanted consequence under other circumstances, when, for instance, a periodic behavior or reproducibility may be important in some applications.
In digital implementations or applications the pseudo-random numbers generated by a pseudo-random number generator typically comprise digital or binary units. Depending on the concrete implementation, a pseudo-random number generator may, in such a case, provide a pseudo-random bit stream (PRBS) comprising a sequence of individual bits or a pseudo-random word stream (PRWS) comprising a sequence of words. Each word typically comprises a plurality of bits, e.g. 4 bits, 6 bits, 8 bits, 16 bits, 32 bits or the like. In other words, a word of a word stream typically comprises a plurality of bits and the word may be considered as a part of a sequence of pseudo-random bits. Therefore, in many applications, a pseudo-random bit stream and a pseudo-random word stream may be derived from each other.
Due to the ever increasing operational speeds and frequencies of circuits, computer systems and other devices, a demand for a faster generation of pseudo-random bit streams and word streams with a sufficiently good statistical distribution concerning randomness of the bits exists, for instance, to allow faster processing speeds of numerical simulations, cryptographic applications, generation of noise signals or other data, information and signals depending on the application in mind. To generate, for instance, the pseudo-random word stream at a speed of 1 GHz, with each word comprising 4 bits entails a generation of 4 gigabits per second (Gbps) which may represent a high technical challenge.